using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace QldtSdh.DAL.Models.Mapping
{
	public class ChuongTrinhDaoTao_HocPhanMap : EntityTypeConfiguration<ChuongTrinhDaoTao_HocPhan>
	{
		public ChuongTrinhDaoTao_HocPhanMap()
		{
			// Khoá chính
			this.HasKey(t => new { t.MaChuongTrinhDaoTaoGUID, t.MaHocPhan });

			// Các cột
			this.Property(t => t.MaChuongTrinhDaoTaoGUID)
				.IsRequired()
                .HasMaxLength(50);

			this.Property(t => t.KhoiKienThuc)
				.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

			this.Property(t => t.MaHocPhan)
				.IsRequired()
                .HasMaxLength(50);

			// Ánh xạ Property của POCO vào Column của Table
			this.ToTable("ChuongTrinhDaoTao_HocPhan");
			this.Property(t => t.MaChuongTrinhDaoTaoGUID).HasColumnName("MaChuongTrinhDaoTaoGUID");
			this.Property(t => t.KhoiKienThuc).HasColumnName("KhoiKienThuc");
			this.Property(t => t.MaHocPhan).HasColumnName("MaHocPhan");
			this.Property(t => t.LaHocPhanBatBuoc).HasColumnName("LaHocPhanBatBuoc");
			this.Property(t => t.HocKy).HasColumnName("HocKy");

			// Các quan hệ
			this.HasRequired(t => t.ChuongTrinhDaoTao)
				.WithMany(t => t.ChuongTrinhDaoTao_HocPhan)
				.HasForeignKey(d => d.MaChuongTrinhDaoTaoGUID);
			this.HasRequired(t => t.HocPhan)
				.WithMany(t => t.ListChuongTrinhDaoTao_HocPhan)
				.HasForeignKey(d => d.MaHocPhan);

		}
	}
}
